1. Field of the Invention
The present invention relates to an optical pointing device and a method of computing a movement value thereof, and more particularly, to an optical pointing device and a method of computing a movement value thereof that are capable of adding different weighting matrices depending on a moving speed of an optical pointing device to reduce an error, which may be generated at highly correlated image patterns.
2. Description of the Related Art
FIG. 1 is a schematic view showing an image obtaining process of an optical mouse as an example of a conventional optical pointing device.
Generally, in the optical mouse shown in FIG. 1, light 7 emitted from a light source 8 is reflected from a working surface 2, and the reflected light 6 passes through a lens 5 to be input to an image sensor 3 composed of a semiconductor chip. The image sensor 3 calculates the amount of the projected light using a plurality of pixels, and compares differences between the pixels to detect a surface pattern. Then, the surface pattern is compared with a pattern made during the previous sample period to compute a movement value of the optical mouse.
FIG. 2 is a block diagram of a conventional optical pointing device.
An image input part 10 includes a light source 11 for emitting light, an image sensor 12 for generating an image, and an A/D converter 13 for converting an analog signal into a digital signal. When light emitted from the light source 11 is reflected from a working surface to project on the image sensor 12, the image sensor 12 composed of a plurality of pixels accumulates the projected light during a sampling period to obtain an image of the working surface. The image sensor 12 generates an image signal using the obtained image to output it in a pixel unit. The A/D converter 13 converts the image signal output from the image sensor 12 into a digital signal to output a sample frame SF.
A correlation matrix generator 20 includes a reference area setting part (not shown), and a correlation generator (not shown), thereby receiving the sample frame SF output from the A/D converter 13 when sampling. The reference area setting part updates a reference frame using the sample frame applied during the previous sampling period, and sets a certain area of the updated reference frame to a reference area. The correlation generator generates a correlation matrix CM representing a correlation between the obtained sample frame and the reference area to thereby output the correlation matrix CM to a movement value calculator 30.
The movement value calculator 30 analyzes the correlation matrix CM generated from the correlation matrix generator 20 to output the position of a cell having the highest correlation as a movement value MV.
An interface 40 converts the movement value output from the movement value calculator 30 in a designated format to output it to an external device.
FIG. 3A is a view for explaining a conventional method of computing a correlation between a sample frame and a reference area.
A reference area 110a is scanned from a left upper corner of a sample frame 120 to a right lower corner in a pixel unit in a zigzag to generate a correlation value.
FIG. 3B is a view showing a correlation matrix composed of the correlation values generated by the method of FIG. 3A.
The correlation values may be generated by various methods, but a method of comparing each pixel of the sample frame 120 with each pixel of the reference area 110a and calculating the number of pixels having different values is exemplarily described herein. When the correlation values are generated on the basis of the number of pixels having different values, a cell having the smallest value in the correlation matrix has the highest correlation, and therefore, a movement value is calculated using a position of the cell having the smallest value.
Coordinates of each cell are used to find the position of a sample frame having the highest correlation and calculate a movement direction and a distance in a pixel unit. For example, when a cell having the smallest value in the correlation matrix is C(−2, 1), it means that an optical pointing device moves by −2 pixels in an X-axis direction, and 1 pixel in a Y-axis direction.
FIG. 4A is views of a reference frame 111, a reference area 111a, and a sample frame 121.
FIG. 4A shows that the sample frame 121 moves in a Y-axis direction by 1 pixel with respect to the reference frame 111. In this process, it is assumed that a value of a dark pixel is 1 and a value of a bright pixel is 0.
A sample frame obtained during the previous sampling period is updated as the reference frame 111, and the reference area 111a is designated as a certain area of the reference frame 111.
Each pixel of the reference area 111a is compared with the sample frame 121 to obtain a correlation value using a method of computing the number of pixels having different values. First, when the reference area is compared with a left upper corner of the sample frame, the number of pixels which is not equal to each other is 5, and therefore, a correlation value is “5”. When the reference area is compared with a right lower corner of the sample frame, the number of pixels which is not equal to each other is 4, and therefore, a correlation value is “4”. A correlation matrix 131 composed of correlation values generated by the above method is shown in FIG. 4B.
Describing the correlation matrix 131 in FIG. 4B in conjunction with FIG. 3B, a value of each cell 131-1 in FIG. 4B is obtained by comparing the reference area 111a with the sample frame 121 in FIG. 4A. The value “5” in FIG. 4B corresponding to C(−2, 2) in FIG. 3B is a value obtained by comparing the reference area 111a with a left upper corner of the sample frame 121. A value “6” in FIG. 4B corresponding to C(0, 0) in FIG. 3B is a value obtained by comparing the reference area 111a with a center of the sample frame 121. Therefore, a cell having the smallest value of the cells in the correlation matrix 131 has the highest correlation, and a movement value of a mouse can be calculated using a position of the cell. However, as shown in FIG. 4B, there are two cells having the smallest value “0”, i.e., C(−2, 1) and C(0,1), and it means that the same two patterns as the reference area 111a exist in the sample frame 121. In this case, it is impossible for the optical pointing device to determine whether the optical pointing device moves by a movement value of −2 pixels in an X-axis direction and 1 pixel in a Y-axis direction, or a movement value of 1 pixel in a Y-axis direction.
As a result, in the conventional optical pointing device including the optical mouse, when the same pattern as the reference area is many in the sample frame, since a plurality of cells having the highest correlation also exist in the correlation matrix, a movement value of the optical pointing device may not be calculated. For example, when movement of a finger is determined using the optical pointing device, a fingerprint of the finger has high regularity, and thus, numerous cells may have the highest correlation. Therefore, it is difficult for the conventional correlation matrix to calculate the movement value.